package com.itheima.interceptor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Objects;

/**
 * @author itheima
 * @since 2021-10-29
 */

public class MyInterceptor implements HandlerInterceptor {

    @Autowired
    private RedisTemplate redisTemplate;

    @Override
    public void postHandle(HttpServletRequest request,
                           HttpServletResponse response,
                           Object handler,
                           ModelAndView modelAndView) throws Exception {


        // 当我第一次访问这个接口的时候
//        // 我要去redis检查，我当前接口是否有一个对应的key，保存在里面
//        Object count = redisTemplate.opsForValue().get("methods");
//        if(Objects.isNull(count)) {
//            // 如果是空的，证明我第一次访问这个接口
//            // 直接向redis里面写入一个 1
//            redisTemplate.opsForValue().set("methods", "1");
//        } else {
//            // 把redis里面那个值，读取出来
//            // +1
//            // 写回去
//
//            int i = (Integer) count + 1;

        // 使用redis自增的方式，来实现对接口访问次数的统计
        redisTemplate.opsForValue().increment("methods", 1);


        System.out.println("后置运行----b1");
    }


    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {

    }
}
